package cc.higou.core.tools;

import org.apache.commons.io.FilenameUtils;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.springframework.core.io.ClassPathResource;

import java.net.URL;
import java.util.HashMap;

/**
 * 说明：
 * FastDFS的分布式文件上传系统
 *
 * @author:dongxing
 * @time:--
 */

public class FastdfsUtil {


    public static String upload(byte[] bytes, String fileName) throws Exception {
        //读取配置文件，使用的是Spring带的
        ClassPathResource resource = new ClassPathResource("fdfs_client.conf");
        //resource.getClassLoader()获取到WEB-INF下的classes文件夹路径
        URL url = resource.getClassLoader().getResource("fdfs_client.conf");

        //加载数据(需要的是String类型的数据，故使用url.getPath转换)
        ClientGlobal.init(url.getPath());
        //创建老大的客户端
        TrackerClient trackerClient = new TrackerClient();
        //获取老大的服务器端
        TrackerServer trackerServer = trackerClient.getConnection();
        //获取小弟的客户端
        StorageClient1 storageClient1 = new StorageClient1(trackerServer, null);

        //获取文件的后缀名
        String extension = FilenameUtils.getExtension(fileName);
        // 将文件上传到分布式文件系统，并返回文件的存储路径及名称
        String file1 = storageClient1.upload_file1(bytes, extension, null);

        return file1;
    }
}
